<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

// ES6提供了更接近传统语言的写法，引入了Class(类)这个概念，作为对象的模板。通过class关键字，可以定义类

// 基本上，ES6的class可以看作只是一个语法糖，它的绝大部分功能，ES5都可以做到，
// 新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已

class Person{
    constructor(name,age){
        this.name = name;
        this.age = age;
    }

    getName(){
         console.log(this.name);
    }
    }

        var p = new Person("iwen",20);
        p.getName();

    //constructor方法
        // constructor()方法是类的默认方法，通过new命令生成对象实例时，自动调用该方法。
        // 一个类必须有constructor()方法，如果没有显式定义，一个空的constructor()方法会被默认添加
    
    //类的实例
        // 生成类的实例的写法，与ES5完全一样，也是使用new命令

    // 注意点
        //不存在提升
        //类不存在变量提升（hoist），这一点与ES5完全不同

    </script>
</body>
</html>